정보처리기사 실기 2024년 2회

정보처리기사 실기


1. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static void check(int[] x, int[] y) {
		if(x==y) System.out.print("O");
		else System.out.print("N");
	}
	public static void main(String[] args) {
		int a[] = new int[] {1, 2, 3, 4};
		int b[] = new int[] {1, 2, 3, 4};
		int c[] = new int[] {1, 2, 3};
		check(a, b);
		check(b, c);
		check(a, c);
	}
}

2. 다음 내용이 설명하는 용어를 쓰시오.
시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
위키해설
클릭하면 보입니다.
  데이터베이스 정규화데이터베이스 반정규화
3. 다음의 조건을 만족하도록 괄호에 적합한 명령을 넣어 SQL문을 완성하시오.
[테이블]
사원 [사원번호(PK), 이름, 나이, 부서]
부서 [사원번호(PK), 이름, 주소, 나이]

① 신입사원이 들어와서 부서 테이블에 새로운 사람을 추가
INSERT INTO 부서 (사원번호, 이름, 주소, 나이) (  ①  ) (240728, '홍길동', '서울', 30);

② 부서 테이블에서 추가한 사원을 검색한 후 사원 테이블에 추가
INSERT INTO 사원 (사원번호, 이름, 나이, 부서)
(  ②  ) 사원번호, 이름, 나이, ‘영업’ FROM 부서 WHERE 이름 = '홍길동';

③ 전체 사원 테이블 조회
SELECT * (  ③  ) 사원;
 
④ 사원의 퇴사로 인해 부서에 해당하는 값을 '퇴사'로 변경
UPDATE 사원 (  ④  ) 부서 = '퇴사' WHERE 사원번호 = 240728;

4. 다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.
위키해설
클릭하면 보입니다.
  관계형 데이터베이스
5. 다음 설명에 해당하는 프로토콜을 쓰시오.
- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다. 
- 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다.
- AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.
위키해설
클릭하면 보입니다.
  IPSec
6. 모듈에 대한 다음 설명에 해당하는 응집도(Cohesion)를 에서 찾아 쓰시오.
실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성하며, 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로써 제공되는 형태이다.
위키해설
클릭하면 보입니다.
  응집도
7. 디자인 패턴에 대한 다음 설명에서 알맞은 용어를 에서 찾아 쓰시오.
- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
- 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있다.
- 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않게 한다.
- Cursor라고도 한다.

8. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
def cnt(str, p):
    result = 0
    for i in range(len(str)):
        sub = str[i:i+len(p)]
        if sub == p:
            result += 1
    return result

str = "abdcabcabca"
p1 = "ca"
p2 = "ab“

print(f'ab{cnt(str, p1)} ca{cnt(str, p2)}')

9. 데이터 교환 방식에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
(  ①  ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식이다.
(  ②  ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식이다.
위키해설
클릭하면 보입니다.
  데이터 교환 방식
10. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

void swap() {
	int a = 11;
	int b = 19;
	int t = a;
	a = b;
	b = t;
}

int main() {
	int a = 11;
	int b = 19;
	swap();
	switch(a) {
		case 1:
			b += 1;
		case 11:
			b += 2;
		default:
			b += 3;
			break;
	}
	printf("%d", a-b);
}

11. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 
#include 

void func(char *d, char *s) {
	int sum = 0;
	while (*s) {
		*d = *s;
		d++;
		s++;
	}
	*d = '';
}

int main() {
	char* str1 = "first";
	char str2[50] = "teststring";
	int result = 0;
	func(str2, str1);

	for (int i = 0; str2[i] != ''; i++) {
		result += i;
	}
	printf("%d", result);
	return 0;
}

12. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
interface Number {
	int sum(int[] a, boolean odd);
}

public class Main {
	public static void main(String[] args) {
		int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		OENumber OE = new OENumber();
		System.out.print(OE.sum(a, true) + ", " + OE.sum(a, false));
	}
}
class OENumber implements Number {
	public int sum(int[] a, boolean odd) {
		int result = 0;
		for(int i=0; i < a.length; i++) {
			if((odd && a[i] % 2 != 0) || (!odd && a[i] % 2 == 0))
				result += a[i];
		}		
		return result;
	}	
}

13. 다음 라우터 A에서 라우터 F까지 경로를 설정하기 위해 RIP 방식을 사용한다고 할 때, 라우터가 지나가는 경로를 순서대로 쓰시오.(단, 간선 위의 숫자는 라우터 간의 거리를 의미한다.)
답 : A ➝
위키해설
클릭하면 보입니다.
  RIP
14. 아래 설명하는 내용을 확인하여 알맞는 알고리즘을 작성하시오.
- 대칭키 알고리즘으로 1997년 NIST(미국 국립기술표준원)에서 DES를 대체하기 위해 생성되었다.
- 128비트, 192비트 또는 256비트의 가변 키 크기와 128비트의 고정 블록 크기를 사용한다.
- 높은 안전성과 효율성, 속도 등으로 인해 DES 대신 전 세계적으로 많이 사용되고 있다.
위키해설
클릭하면 보입니다.
  AESDES
15. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

int main() {
	int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
	int* parr[2] = {arr[1], arr[2]};
	printf("%d", parr[1][1] + *(parr[1]+2) + **parr);

	return 0;
}

16. 아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.
위키해설
클릭하면 보입니다.
  프로세스 스케줄링SRT (프로세스 스케줄링)
17. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static String rf(String str, int index, boolean[] seen) {
		if(index < 0) return "";
		char c = str.charAt(index);
		String result = rf(str, index-1, seen);
		if(!seen[c]) {
			seen[c] = true;
			return c + result;
		}
		return result;
	}
	public static void main(String[] args) {
		String str = "abacabcd";
		int length = str.length();
		boolean[] seen = new boolean[256];
		System.out.print(rf(str, length-1, seen));
	}
}

18. 소프트웨어 설계에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다.
- 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.

답 : (                   )  Coupling
위키해설
클릭하면 보입니다.
  결합도
19. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

struct node {
	int n1;
	struct node *n2;
};

int main() {
	struct node a = {10, 0};
	struct node b = {20, 0};
	struct node c = {30, 0};

	struct node *head = &a;
	a.n2 = &b;
	b.n2 = &c;

	printf("%d", head -> n2 -> n1);

        return 0;
}

20. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static void main(String[] args) {
		String str = "ITISTESTSTRING";
		String[] result = str.split("T");
		System.out.print(result[3]);
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
채점하기
hide
reset
타이머

모든 문제들의 저작권은 원저작권자에게 있습니다. 본 사이트는 웹상에 공개되어 있는 문제만 모아서 보여드립니다.
저작권 안내   데이터 보호 안내   제휴 문의

copyright 2025 뉴비티::새로운 CBT 시스템 - newbt.kr